package com.stylefeng.guns.core.util;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * MD5加密类（封装jdk自带的md5加密方法）
 *
 * @author fengshuonan
 * @date 2016年12月2日 下午4:14:22
 */
public class MD5Util {

    public static String encrypt(String source) {
        return encodeMd5(source.getBytes());
    }

    private static String encodeMd5(byte[] source) {
        try {
            return encodeHex(MessageDigest.getInstance("MD5").digest(source));
        } catch (NoSuchAlgorithmException e) {
            throw new IllegalStateException(e.getMessage(), e);
        }
    }

    private static String encodeHex(byte[] bytes) {
        StringBuffer buffer = new StringBuffer(bytes.length * 2);
        for (int i = 0; i < bytes.length; i++) {
            if (((int) bytes[i] & 0xff) < 0x10)
                buffer.append("0");
            buffer.append(Long.toString((int) bytes[i] & 0xff, 16));
        }
        return buffer.toString();
    }

    public static void main(String[] args) {
//        for (int a = 0; a < 10; a++) {
//            for (int b =  0; b < 10; b++) {
//                for (int c = 0; c < 10; c++) {
//                    for (int d = 0; d < 10; d++) {
//                        for (int e = 0; e < 10; e++) {
//                            for (int f = 0; f < 10; f++) {
//                                for (int g = 0; g < 10; g++) {
//                                    for (int h = 0; h < 10; h++) {
//                                        for (int i = 0; i < 10; i++) {
//                                            for (int j = 0; j < 10; j++) {
//                                                if ((a + b == c + d) && (c + d == e + f) && (e + f == g + h) && (g + h == i + j)
//                                                        && a != b && a != c && a != d && a != e && a != f && a != g && a != h && a != i && a != j
//                                                        && b != c && b != d && b != e && b != f && b != g && b != h && b != i && b != j
//                                                        && c != d && c != e && c != f && c != g && c != h && c != i && c != j
//                                                        && d != e && d != f && d != g && d != h && d != i && d != j
//                                                        && e != f && e != g && e != h && e != i && e != j
//                                                        && f != g && f != h && f != i && f != j
//                                                        && g != h && g != i && g != j
//                                                        && h != i && h != j
//                                                        && i != j ) {
//                                                    System.out.println(a + "+" + b + "=" + c + "+" + d + "=" + e + "+" + f + "=" + g + "+" + h + "=" + i + "+" + j);
//                                                }
//                                            }
//                                        }
//                                    }
//                                }
//                            }
//                        }
//                    }
//                }
//            }
//        }
        int i=3072;
        int b=1967;
        int c=5968;
        int d=1567;
        int e=(i*6)+(b*6)+(c)+(d*4);
        System.out.println(e);
        System.out.println(encrypt("123456"));
    }
}
